1
精通進階控制流程
AI019Lesson 6
00:00

case 」表達式是 Elixir 控制流程的基石。與指令式(imperative)的 switch 語句不同, case 它是一個函數式表達式,會返回匹配分支的結果,讓開發者能立即解構如 map 與 tuple 這類複雜資料型態,同時強制執行完全匹配的邏輯。

1. 模式比對與變數繫結

case 表達式可讓你將一個值與一組模式進行比對。它會執行第一個匹配到的模式所對應的程式碼,並 回傳該程式碼的結果 你也可以在比對過程中繫結變數,以便於即時使用於分支邏輯中。

case dave do
%{state: some_state} = person ->
IO.puts "#{person.name} 居住在 #{some_state}"
end

2. 視覺化邏輯流程

模式 {:ok, val}模式 {:error, _}預設 _

3. 守護條件與完整性

透過使用 when 關鍵字,你可以為結構化比對加入判斷式邏輯(例如, is_number(age) and age >= 21)。Elixir 強制要求每個可能的輸入都必須有對應的匹配;若無任何模式符合,就會觸發 CaseClauseError 錯誤。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>